﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace QldtSdh.DAL.Models
{
    public partial class GiangVien
    {
        public string _GioiTinhStr
        {
            get
            {
                return GioiTinh ? "Nam" : "Nữ";
            }
        }

        public string _NguonGiangVien
        {
            get
            {
                return LaThinhGiang ? "Thỉnh giảng" : "Cơ hữu";
            }
        }

        public string _TenDayDu
        {
            get
            {
                return string.Format("{0} {1} {2} {3}", HocHam_VietTat, HocVi_VietTat, HoDem, Ten).Trim();
            }
        }

        /// <summary>
        /// Dạng viết tắt của học vị: TS, TSKH
        /// </summary>
        public string HocVi_VietTat
        {
            get { return GetHocViVietTatOf(HocVi); }
        }

        /// <summary>
        /// Dạng viết tắt của học hàm: GS, PGS
        /// </summary>
        public string HocHam_VietTat
        {
            get { return GetHocHamVietTatOf(HocHam); }
        }

        /// <summary>
        /// Thông tin tóm tắt về một giảng viên (Có thể dùng để hiển thị như một phần tử trong 1 ListBox)
        /// </summary>
        public string GiangVienDesc
        {
            get
            {
                if (string.IsNullOrEmpty(HocHam))
                {
                    if (string.IsNullOrEmpty(HocVi))
                        return string.Format("[{0}] {1} {2}", MaGiangVien, HoDem, Ten);
                    else
                        return string.Format("[{0}] {1}. {2} {3}", MaGiangVien, HocVi_VietTat, HoDem, Ten);
                }
                else
                {
                    if (string.IsNullOrEmpty(HocVi))
                        return string.Format("[{0}] {1}. {2} {3}", MaGiangVien, HocHam_VietTat, HoDem, Ten);
                    else
                        return string.Format("[{0}] {1}. {2}. {3} {4}", MaGiangVien, HocHam_VietTat, HocVi_VietTat, HoDem, Ten);
                }
            }
        }

        /// <summary>
        /// Thông tin của giảng viên - dùng trong chức năng thời khoá biểu
        /// </summary>
        public string GiangVienDescTKB
        {
            get
            {
                if (string.IsNullOrEmpty(HocHam))
                {
                    if (string.IsNullOrEmpty(HocVi))
                        return string.Format("{0} {1}", HoDem, Ten);
                    else
                        return string.Format("{0}. {1} {2}", HocVi_VietTat, HoDem, Ten);
                }
                else
                {
                    if (string.IsNullOrEmpty(HocVi))
                        return string.Format("{0}. {1} {2}", HocHam_VietTat, HoDem, Ten);
                    else
                        return string.Format("{0}. {1}. {2} {3}", HocHam_VietTat, HocVi_VietTat, HoDem, Ten);
                }
            }
        }

        public static List<string> HocHamList
        {
            get { return new List<string>() { "", "Giáo sư", "Phó giáo sư" }; }
        }

        public static string GetHocHamVietTatOf(string hocHam)
        {
            hocHam = hocHam.ToUpper();
            if (hocHam == "GIÁO SƯ")
                return "GS";
            else if (hocHam == "PHÓ GIÁO SƯ")
                return "PGS";
            else
                return "";
        }

        public static List<string> HocViList
        {
            get { return new List<string>() { "Tiến sĩ", "Tiến sĩ Khoa học" }; }
        }

        public static string GetHocViVietTatOf(string hocVi)
        {
            hocVi = hocVi.ToLower();
            if (hocVi == "tiến sĩ")
                return "TS";
            else if (hocVi == "tiến sĩ khoa học")
                return "TSKH";
            else
                return "";
        }
    }
}
